14章 コンセンサス
コンセンサスルール
非中央集権的かつ決定論的な方法で動作するために、全ての参加者が合意しなければならないルールのこと
非中央集権型ネットワークでは、何が正しいかを決定する中心的な主体がない
それが魅力のひとつ
ではあるが、コストがかかる
意見の不一致、不正、相違点をどう仲裁するか?
コンセンサスアルゴリズムは、セキュリティと非中央集権化を調整するための仕組み
ブロックチェーンではコンセンサスは...
超重要
資産が絡んでるから
非中央集権性を維持しながら、共通の状態に到達するための仕組み
コンセンサスは、統治者なしで厳密なルール(strict rules without rulers)の体系を作り出すことを目的としています。
非中央集権的にコンセンサスに至る能力の確保は、開かれたブロックチェーンの基本原則
この章ではいくつかのコンセンサスモデルとその影響について見ていく
14.1 PoWによるコンセンサス
資源の採掘(=通貨の発行)が目的ではない
実際の目的はシステムに対するコントロールを非中央集権化し、できるだけ多くの参加者に分散させて、ブロックチェーンのセキュリティを確保することです。
実際に通貨が報酬として貰えるが、あくまでインセンティブであり、↑の目的を達成するための手段
コストとしては電気代など
PoWコンセンサスは、参加者を自己利益に基づいて誠実に振る舞わせるような、注意深く作られたリスクと報酬のバランスによって成り立っています。
イーサリアムは現時点ではPoWブロックチェーン
ブロックチェーンのPoWアルゴリズムとは少し違う
イーサリアムのPoWアルゴリズムはEthash(イーサッシュ)と呼ばれるもの
14.2 PoS (Proof of Stake) によるコンセンサス
金銭的な利害関係に基づくコンセンサスアルゴリズム
イーサリアムではPoWからPoSに移行しようとしている
イーサリアムのPoWはディフィカルティボム(difficulty bomb)という意図的な障害が内蔵されている
PoWのマイニングを徐々に難しくして、PoSにへの移行を強制させることが目的
CasperというPoSアルゴリズムの導入が検討されている
PoSのアルゴリズム
参加者は次に有効なブロックの提案と投票を行う
投票の重みはデポジット(ステイク=掛け金)に応じて決まる
自分が投票したものが拒否された場合はそのステイクを失う
反対に多数派によって承認された場合には、ステイクのサイズに比例して報酬を獲得する
(多数決?)
PoSとPoWの違い(罰=コストの観点)
PoSは内在的な罰=ステイクしたイーサの喪失
PoWは外在的な罰=電気代
14.3 Ethash:イーサリアムのPoWアルゴリズム
EthashはDagger-Hashimoto(ダガー-ハシモト)アルゴリズムをベースにしている
有向非巡回グラフ(Directed Acyclic Graph : DAG)と呼ばれる大きなデータセットの生成と分析に依存している DAGの初期値は約1GBで、ゆっくり線形にサイズが増えていき、エポック(30,000ブロック、約125時間)ごとに1回更新される
頻繁にアクセスされる大規模なデータ構造を維持することに、Ethash PoWアルゴリズムを依存させることが目的
ASIC(Application Specific Integrated Circuits : 特定用途向け集積回路)のマインング機器を作ることが難しい性質
特殊なシリコン製造工場や大きな予算を持つ人間によってマイニングのインフラが支配されるのを防ぐため
コンセンサスアルゴリズムのセキュリティが損なわれないように
PoWマイニングの集中化を避ける
PoS移行計画があるため、ASIC事業者からイーサリアムがターゲットにされずにすんできた
時間と資金を投入してASICを開発しても、PoSに移行されると無駄になってしまうから
14.4 Casper:イーサリアムのPoSアルゴリズム
Casper = イーサリアムのPoSコンセンサスアルゴリズムの総称 Casperは2つの競合する方向性のもとで開発されている
Casper CBC : The Friendly GHOST/Correct-by-Construction Casper FFG
最終形である「純粋なPoS」への途中段階として実装
ハイブリッドPoW/PoSアルゴリズム
しかし、研究をリードしていたヴィタリック・ブリテンはハイブリッドモデルを廃止することを決めた
純粋なPoSアルゴリズムを支持した
FFGとCBCはトレードオフの関係にある。CBCにはより洗練された理論的特性があり、FFGには実装の容易さがあるようだ。
14.5 コンセンサスの原則
コンセンサスアルゴリズムの原則と前提
誰がどのように過去を変更できるか(不変性)
そのような変更を行うためのコストはいくらか
そのような変更を行う権限がどのように非中央集権化されているか
何かが変更されたとき、誰がどうやってそのことを知るか
14.6 論争と競争
なんでこんなに異なるコンセンサスアルゴリズムがあるのか?
どのコンセンサスアルゴリズムが優れてるのか?
=> 何を「より優れている」と考えるかによって変わる。前提やゴール、避けられないトレードオフ次第。
非中央集権型コンセンサスアルゴリズムに関連する問題のすべての側面を最適化できるアルゴリズムは、おそらく存在しないでしょう。
あるアルゴリズムが他のアルゴリズムに比べて優れていると言うとき、上にあげた原則と前提のどの点において優れているのかを明確にしないといけない
14.7 まとめ
『マスタリング・イーサリアム』の読了、おめでとうございます。